<template>
  <div>
    <van-popup v-model="show" position="bottom">
      <van-area :area-list="areaList" @cancel="show=false" :columns-num="num" @confirm="onchange"></van-area>
    </van-popup>
  </div>
</template>

<script>
  import {Area, Popup} from 'vant';
  import Vue from 'vue';
  import axios from 'axios';

  Vue.use(Area, Popup, axios);
  export default {
    name: 'areaChoose',
    data: function () {
      return {
        show: false,
        areaList: {
          province_list: {},
          city_list: {},
          county_list: {}
        },
        allArea: {}
      };
    },
    computed: {},
    props: {
      num: {
        type: String,
        default: ''
      }
    },
    methods: {
      changeShow() {
        console.log('31132131');
        this.show = true;
      },
      onchange(msg) {
        this.show = false;
        let area = {
          'province': '',
          'city': '',
          'county': ''
        };
        area.province = msg[0].name;
        area.city = msg[1] === undefined ? '' : msg[1].name;
        area.county = msg[2] === undefined ? '' : msg[2].name;
        // for (let i = 0; i < msg.length; i++) {
        //   a[i] = msg[i].name;
        // }
        this.$emit('getArea', area);
      }
    },
    watch: {
      // 监听具体数据变化，并做相应的处理
    },
    beforeCreate() {
      // 可以在这加个loading事件，在加载实例时触发
      // 这个阶段实例的data、methods是读不到的
    },
    created() {
      // 初始化数据，如在这结束loading事件，异步ajax请求也适宜在这里调用
      // 实例创建后：这个阶段已经完成了数据观测(data observer)，属性和方法的运算， watch/event 事件回调。
      // mount挂载阶段还没开始，"el" 属性目前不可见，数据并没有在DOM元素上进行渲染
    },
    beforeMount() {
      // 相关的 render 函数首次被调用。
    },
    mounted: function () {
      // axios.get('static/css/area.json').then(res => {
      //   console.log(111, res);
      //   this.areaList = res.data;
      // });
      this.$Cart.area().then(res => {
        let area = JSON.parse(res.data.substr(1));
        this.$emit('allArea', area);
        let asi = 100000;
        for (let i in area) {
          this.$set(this.areaList.province_list, asi, i);
          let asj = asi + 100;
          for (let j in area[i]) {
            this.$set(this.areaList.city_list, asj, j);
            let ask = asj + 1;
            for (let k = 0; k < area[i][j].length; k++) {
              this.$set(this.areaList.county_list, ask, area[i][j][k]);
              ask += 1;
            }
            asj += 100;
          }
          asi += 10000;
        }
        console.log(this.areaList, 'area');
      });
      // for (let i = 0; i < area.length; i++) {
      //   console.log('aaa', i);
      //   this.$set(this.areaList.province_list, i, i);
      // }
      // });
      // 挂载元素，获取到DOM节点
      // el选项的DOM节点 被新创建的 vm的el 替换，并挂载到实例上去之后调用此生命周期函数。此时实例的数据在DOM节点上进行渲染
    },
    beforeUpdate() {
      // 数据更新时调用，但不进行DOM重新渲染，在数据更新时DOM没渲染前可以在这个生命函数里进行状态处理
    },
    updated() {
      //  如果对数据统一处理，在这里写上相应函数
      // 这个状态下数据更新并且DOM重新渲染，当这个生命周期函数被调用时，组件 DOM 已经更新，所以你现在可以执行依赖于 DOM 的操作。当实例每次进行数据更新时updated都会执行
    },
    beforeDestroy() {
      // 可以做一个确认停止事件的确认框
    },
    destroyed() {
      // Vue 实例销毁后调用。调用后，Vue 实例指示的所有东西都会解绑定，所有的事件监听器会被移除，所有的子实例也会被销毁
    }
  };

</script>

<style scoped lang="stylus" rel="stylesheet/stylus">
</style>
